#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by master on 2017/3/4

import logging

'''
# 最简单的用法

logging.warning("user [alex] attempted wrong password more than 3 times")
logging.critical("server is down")
'''

'''
# 如果想把日志写到文件里，也很简单

# 其中下面这句中的level=loggin.INFO意思是，把日志纪录级别设置为INFO，
# 也就是说，只有比日志是INFO或比INFO级别更高的日志才会被纪录到文件里，
# 在这个例子， 第一条日志是不会被纪录的，如果希望纪录debug的日志，
# 那把日志级别改成DEBUG就行了。
logging.basicConfig(filename='example.log', level=logging.INFO)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')
'''

'''
# 感觉上面的日志格式忘记加上时间啦，日志不知道时间怎么行呢，下面就来加上!

logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %H:%M:%S %p')
logging.warning('is when this event was logged.')
'''

# create logger
logger = logging.getLogger('TEST-LOG')  # logger名字
logger.setLevel(logging.DEBUG)  # 全局设置(优先级最高)

# create console handler and set level to debug 屏幕输出
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create file handler and set level to warning 文件输出
fh = logging.FileHandler("access.log")
fh.setLevel(logging.WARNING)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# add formatter to ch and fh 让屏幕和文件输出的日期都按照这种格式
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add ch and fh to logger 把创建的handler赋给logger，只要有调用logger就把log输出到文件和屏幕
logger.addHandler(ch)
logger.addHandler(fh)

# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
